home *** CD-ROM | disk | FTP | other *** search
/ F1 Licenseware / F1 Licenseware - Volume 1.iso / disks / 049b.dms / 049b.adf / MORE_SOURCE_CODE / Install.AMOS / Install.amosSourceCode < prev    next >
AMOS Source Code  |  1992-02-26  |  3KB  |  164 lines

  1. '--------------------------------------------------------------------- 
  2. ' Amoszine installer - By Andrew Smith  1994 
  3.  
  4. ' Written for Amoszine using AMOS Professional v2.0
  5. '--------------------------------------------------------------------- 
  6.  
  7. Dim CL(16) : Dim SCRIPT$(50)
  8.  
  9. Unpack 15 To 0
  10. Screen Display 0,,150,,
  11. Screen Hide 0
  12.  
  13. ' Make mouse pointer prettier
  14.  
  15. Colour 17,$FFF : Colour 19,$A
  16.  
  17. ' Store colour palette in array
  18.  
  19. For T=0 To 15
  20.    CL(T)=Colour(T)
  21. Next T
  22.  
  23. ' Wipe colours 
  24.  
  25. For T=0 To 15
  26.    Colour T,$0
  27. Next T
  28.  
  29. ' Show screen and do a nice fade in
  30.  
  31. Screen Show 0
  32.  
  33. Fade 3,CL(0),CL(1),CL(2),CL(3),CL(4),CL(5),CL(6),CL(7),CL(8),CL(9),CL(10),CL(11),CL(12),CL(13),CL(14),CL(15)
  34. Wait 45
  35.  
  36. ' Move logo to top of screen 
  37.  
  38. For Y=150 To 40 Step -2
  39.    Screen Display 0,,Y,,
  40.    Wait Vbl 
  41. Next Y
  42.  
  43. Global DESTDIR$
  44.  
  45. ' The DEST$ variable contains the path to install to 
  46.  
  47. Wind Save 
  48. Wind Open 1,124,100,48,4,3
  49. Window 1
  50. Border 3,6,15
  51. Title Top "Enter device to install to ..."
  52. Pen 15
  53. Input DEST$
  54. Wind Close 
  55. Clear Key 
  56.  
  57. Paper 0 : Pen 15
  58.  
  59. ' Store script in array to minimize on disk swapping.
  60.  
  61. Open In 1,"dirs.dta"
  62. COUNT=1
  63. Repeat 
  64.    Input #1,LINE$
  65.    SCRIPT$(COUNT)=LINE$
  66.    Inc COUNT
  67. Until Eof(1)
  68. Close 1
  69.  
  70. COUNT=1
  71. Repeat 
  72.    LINE$=SCRIPT$(COUNT)
  73.    Inc COUNT
  74.    
  75.    ' Find position of first colon 
  76.    
  77.    POS=Instr(LINE$,":")
  78.    
  79.    ' Get size of line minus POS.  
  80.    
  81.    SIZEOFDIR=Len(LINE$)-POS
  82.    
  83.    ' Get directory name without shite 
  84.    
  85.    DESTDIR$=Mid$(LINE$,POS+1,SIZEOFDIR-1)
  86.    
  87.    ' Get ARCHIVE: and stick it with directory name
  88.    ' e.g.  archive:source_code
  89.    
  90.    DESTDIR$=DEST$+DESTDIR$
  91.    
  92.    ' If directory already exists then don't bother creating it
  93.    
  94.    If Not Exist(DESTDIR$)
  95.       Mkdir DESTDIR$
  96.    End If 
  97.    
  98.    ' Copy one directory at a time 
  99.    
  100.    Dir$=LINE$
  101.    Centre At(,31)+"                                                               "
  102.    Centre At(,31)+"Installing : "+LINE$
  103.    F$=Dir First$("**")
  104.    Repeat 
  105.       If Left$(F$,1)<>"*"
  106.          
  107.          ' Strip uneeded leading space from f$  
  108.          
  109.          F$=Mid$(F$,2,35)
  110.          
  111.          ' Find position of first space, after filename 
  112.          
  113.          POS=Instr(F$," ")
  114.          
  115.          ' Get filename without any junk and store in f$
  116.          
  117.          F$=Mid$(F$,1,POS-1)
  118.          If Len(F$)=>29
  119.             F$=Left$(F$,29)
  120.          End If 
  121.          
  122.          ' Copy file
  123.          
  124.          If Right$(LINE$,1)=":"
  125.             _COPYFILE[F$,DESTDIR$+F$,14]
  126.          Else 
  127.             _COPYFILE[F$,DESTDIR$+"/"+F$,14]
  128.          End If 
  129.       End If 
  130.       F$=Dir Next$
  131.    Until F$=""
  132.    
  133. Until SCRIPT$(COUNT)=""
  134. Bell 
  135. Wind Save 
  136. Wind Open 1,124,100,48,4,3
  137. Window 1
  138. Border 3,6,15
  139. Title Top "Amoszine Installer Message"
  140. Pen 15
  141. Centre At(,0)+"Installation complete!"
  142. Centre At(,1)+"Click mouse or press a key"
  143. Repeat 
  144.    X$=Inkey$
  145. Until(Mouse Key) or(X$<>"")
  146. Wind Close 
  147.  
  148. Fade 3 : Wait 45
  149.  
  150. Procedure _COPYFILE[SOURCE$,DESTINATION$,BANK]
  151.  
  152.    Open In 2,SOURCE$
  153.    Reserve As Work BANK,Lof(2)
  154.    Bload SOURCE$,BANK
  155.    Close 2
  156.    Bsave DESTINATION$,Start(BANK) To Start(BANK)+Length(BANK)
  157.  
  158.    ' This line is provided for compatability with AMOS 1.3
  159.    ' If it is removed, then the error 'Bank already reserved' appears 
  160.    ' under AMOS classic.
  161.  
  162.    Erase BANK
  163.  
  164. End Proc[ERRMESS$]